/*
 *  Copyright 2008-2010 www.jrails.org
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package org.rails.extjs.chart;

public class NumericAxis extends Axis {
	
	public static final String SCALE_LINEAR = "linear";
	public static final String SCALE_LOGARITHMIC = "logarithmic";

	public NumericAxis() {
		super();
	}
	
	public NumericAxis(String title) {
		super(title);
	}

	public void setAdjustMaximumByMajorUnit(Boolean adjustMaximumByMajorUnit){
		addOption("adjustMaximumByMajorUnit",adjustMaximumByMajorUnit);
	}
	
	public Boolean isAdjustMaximumByMajorUnit(){
		return getBoolean("adjustMaximumByMajorUnit",false);
	}
	
	public void setAdjustMinimumByMajorUnit(Boolean adjustMinimumByMajorUnit){
		addOption("adjustMinimumByMajorUnit",adjustMinimumByMajorUnit);
	}
	
	public Boolean isAdjustMinimumByMajorUnit(){
		return getBoolean("adjustMinimumByMajorUnit",false);
	}
	
	public void setAlwaysShowZero(Boolean alwaysShowZero) {
		addOption("alwaysShowZero", alwaysShowZero);
	}

	public Boolean isAlwaysShowZero() {
		return getBoolean("alwaysShowZero", false);
	}
	
	public void setCalculateByLabelSize(Boolean calculateByLabelSize){
		addOption("calculateByLabelSize",calculateByLabelSize);
	}
	
	public Boolean isCalculateByLabelSize(){
		return getBoolean("calculateByLabelSize",false);
	}

	public void setMajorUnit(Integer majorUnit) {
		addOption("majorUnit", majorUnit);
	}

	public Integer getMajorUnit() {
		return getInteger("majorUnit", 0);
	}

	public void setMaximum(Integer maximum) {
		addOption("maximum", maximum);
	}

	public Integer getMaximum() {
		return getInteger("maximum", Integer.MAX_VALUE);
	}

	public void setMinimum(Integer minimum) {
		addOption("minimum", minimum);
	}

	public Integer getMinimum() {
		return getInteger("minimum", Integer.MIN_VALUE);
	}

	public void setMinorUnit(Integer minorUnit) {
		addOption("minorUnit", minorUnit);
	}

	public Integer getMinorUnit() {
		return getInteger("minorUnit", 0);
	}

	public void setScale(String scale) {
		addOption("scale", scale);
	}

	public String getScale() {
		return getString("scale", "linear");
	}

	public void setSnapToUnits(Boolean snapToUnits) {
		addOption("snapToUnits", snapToUnits);
	}

	public Boolean isSnapToUnits(Boolean snapToUnits) {
		return getBoolean("snapToUnits", false);
	}
	
	public void setPosition(String position){
		addOption("position",position);
	}
	
	public String getPosition(){
		return getString("position","");
	}
	
	public void setRoundMajorUnit(Boolean roundMajorUnit){
		addOption("roundMajorUnit",roundMajorUnit);
	}
	
	public Boolean isRoundMajorUnit(){
		return getBoolean("roundMajorUnit",false);
	}
	

	@Override
	public String getScript() {
		script = new StringBuffer("");
		script.append("new Ext.chart.NumericAxis(");
		script.append(createOptions());
		script.append(")");
		return script.toString();
	}

}
